/* 用孩子兄弟表示法求树的高度 */

#include <iostream>
#include "BiTreefun.h"
using namespace std;

// 求树的高度，n表示当前所在层，max表示高度
void fun(BTNode *T, int n, int &max)
{
  // 更新高度
  if (max < n)
    max = n;
  
  // 如果孩子结点不为空
  if (T->lchild != NULL)
    fun(T->lchild, n + 1, max);
  
  // 如果兄弟结点不为空
  if (T->rchild != NULL)
    fun(T->rchild, n, max);
}
int main()
{
  int n = 1;
  int max = 0;
  
  // 创建二叉树
  BTNode *T = create_bitree();
  
  // 求树的高度
  fun(T, n, max);
  cout << max << endl;
}